core: Add --delete option for fsck
authorColin Walters <walters@verbum.org>
Mon, 23 Jan 2012 22:06:10 +0000 (17:06 -0500)
committerColin Walters <walters@verbum.org>
Mon, 23 Jan 2012 22:06:10 +0000 (17:06 -0500)
Useful to clean up any broken objects.

src/ostree/ot-builtin-fsck.c

index fcd7070f4464fdd1036c7de082c6f97b40bb40e9..9671ffabef92a0ad3cd9353f0a7afa02ca66f7d4 100644 (file)
 #include <glib/gi18n.h>
 
 static gboolean quiet;
+static gboolean delete;
 
 static GOptionEntry options[] = {
   { "quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet, "Don't display informational messages", NULL },
+  { "delete", 0, 0, G_OPTION_ARG_NONE, &delete, "Remove corrupted objects", NULL },
   { NULL }
 };
 
@@ -162,6 +164,8 @@ object_iter_callback (OstreeRepo    *repo,
       data->had_error = TRUE;
       g_printerr ("ERROR: corrupted object '%s'; actual checksum: %s\n",
                   ot_gfile_get_path_cached (objf), g_checksum_get_string (real_checksum));
+      if (delete)
+        (void) unlink (ot_gfile_get_path_cached (objf));
     }
 
   data->n_objects++;